#ifndef __GLES2GpuProgram_H__
#define __GLES2GpuProgram_H__

#include "GpuProgram.h"
#include "HardwareVertexBuffer.h"

namespace PVM
{
	class GLES2GpuProgram : public GpuProgram
	{
	public:
		GLES2GpuProgram(ResourceManager* creator, const std::string& name, ResourceHandle handle,
						const std::string& group, bool isManual = false, ManualResourceLoader* loader = 0);
		virtual ~GLES2GpuProgram();
		
		virtual void bindProgram(void) {}
		virtual void unbindProgram(void) {}
		
		virtual void bindProgramParameters(GpuProgramParametersSharedPtr params, uint16 mask) {}
		virtual void bindProgramPassIterationParameters(GpuProgramParametersSharedPtr params) {}
		
		const GLuint getProgramID(void) const
		{
			return mProgramID;
		}
		
	protected:
		void loadFromSource(void) {}
		void unloadImpl(void);
		
		GLuint mProgramID;
		GLenum mProgramType;
	};
}

#endif
